import type { MultipleConditionSearchSchema } from '@/components/multiple-condition-search'
import { skipModuleOptions } from '@/constants/cdn-node'

export default function useConfig(type) {
  const searchSchema = computed<MultipleConditionSearchSchema>(() => {
    return {
      placeholder: '默认按照规则 ID 搜索',
      maxWidth: 240,
      widgets: [
        {
          type: 'input',
          label: '规则 ID',
          field: 'id',
          maxLength: 19,
          validate: validateRuleID,
        },
        {
          type: 'input',
          label: '规则名称',
          field: 'name_keyword',
        },
      ],
    }
  })

  // const rule: BuildTabColumnsData = {
  //   title: '执行策略',
  //   slotName: 'strategy',
  // }

  // const jumpModule: BuildTabColumnsData = {
  //   title: '跳过模块',
  //   dataIndex: 'jump',
  //   render({ record }) {
  //     const list = record.module_config.skip_module ?? []
  //     return list
  //       .map((item: number) => getOptionsLabel(skipModuleOptions, item))
  //       .join(', ')
  //   },
  // }

  const columns = computed(() => {
    const rule: BuildTabColumnsData = {
      title: '执行策略',
      slotName: 'strategy',
    }

    const jumpModule: BuildTabColumnsData = {
      title: '跳过模块',
      dataIndex: 'jump',
      render({ record }) {
        const list = record.module_config.skip_module ?? []
        return list
          .map((item: number) => getOptionsLabel(skipModuleOptions, item))
          .join(', ')
      },
    }
    const commonColumns: BuildTabColumnsData[] = [
      {
        title: '规则 ID',
        dataIndex: 'id',
        format: 'copy',
      },
      {
        title: '规则名称',
        dataIndex: 'name',
        format: 'copy',
      },
      {
        title: '描述',
        dataIndex: 'condition_description',
      },

      {
        title: '状态',
        render({ record }) {
          return record.status === 1 ? '开启' : '关闭'
        },
      },
      {
        title: '操作',
        slotName: 'action',
        width: 112,
        cellClass: 'actions-cell',
      },
    ]
    if (type.value === 3) {
      commonColumns.splice(3, 0, jumpModule)
    } else {
      commonColumns.splice(2, 0, rule)
    }

    return buildColumns(commonColumns)
  })

  // const commonColumns: BuildTabColumnsData[] = [
  //   {
  //     title: '规则 ID',
  //     dataIndex: 'id',
  //     format: 'copy',
  //   },
  //   {
  //     title: '规则名称',
  //     dataIndex: 'name',
  //     format: 'copy',
  //   },
  //   {
  //     title: '描述',
  //     dataIndex: 'condition_description',
  //   },

  //   {
  //     title: '状态',
  //     render({ record }) {
  //       return record.status === 1 ? '开启' : '关闭'
  //     },
  //   },
  //   {
  //     title: '操作',
  //     slotName: 'action',
  //     width: 112,
  //     cellClass: 'actions-cell',
  //   },
  // ]

  // watch(type, () => {
  //   if (type.value === 3) {
  //     commonColumns.splice(3, 0, jumpModule)
  //   } else {
  //     commonColumns.splice(2, 0, rule)
  //   }
  // })

  return {
    searchSchema,
    columns,
  }
}
